Error Handling
Page Errors
When a page fails to load its data due to an error, the following dialog will be displayed.
UI & Design

This is coming from the DetailsErrorPage component. Actual information of the error will be visible on console.
Since page data are server-side requests, the logs will be displayed in the console (rather than front-end tools such as Chrome Dev Tools).

All pages in the application can display this error.
Common errors
| Code | Cause | Solution |
|---|---|---|
| 400/500 | Request error in Middleware/Amagi | Check the logs to get more information of cause |
Playback Errors
The error code displayed maps directly to Shaka’s error codes. These are displayed as modals on top of the player itself.
UI & Design
Playback errors are visible on the EPG page where the player is located.

Stacktrace
- Error data is collected on
playbackSessionAnalytics.ts > createPlaybackErrorHandler. - This is passed to
Player.tsxand displayed onPlayerError.tsx.
Common errors
| Code | Cause | Solution |
|---|---|---|
| 1002 | Channel is geo-blocked to US only. | Switch to US through VPN |
Swimlane errors
Each swimlane in the home page has its own Control entry and middleware query. If any of these entries fails to return a successful response, the app simply skips over the swimlane.
Home swimlanes are defined in their own Entry. There is one for development and another one for production.

Each swimlane has its own title & query. The query is what the client app uses to fetch the data, and its the piece that could fail.

These are server-side requests. Any failure in the query will display an error log in the terminal

UI & Design
There is no UI for a failed swimlane query

Common error causes
Here are 2 main scenarios of why a swimlane query is not working:
| Cause | Solution |
|---|---|
| The query was changed to a faulty query in Control | Review the recent changes in the entry, and identify what’s wrong with the new query |
| The query was not changed but it is no longer working | The queries go through the middleware, so either there’s an issue with the MW itself, or the provider. |
Fallback images
IF an image in a card fails to load, a fallback image will be displayed. The fallback image is determined given the type of swimlane card. This logic is defined at Card.tsx
UI & Design
